package cc.rengu.igas.bomp.common.dao;

import cc.rengu.igas.bomp.common.entity.MchntApexInfo;

import java.util.List;

/**
 * 商户拓展属性表DAO接口
 */
public interface MchntApexInfoMapper {

    /**
     * 登记商户扩展属性信息
     *
     * @param mchntApexInfo 商户扩展属性信息
     * @return 0-成功，其它-失败
     * @throws Exception 异常
     */
    int insertMchntApexInfo(MchntApexInfo mchntApexInfo) throws Exception;

    /**
     * 根据业务主键更新商户拓展属性表
     *
     * @param mchntApexInfo 商户扩展属性信息
     * @return 0-成功，其它-失败
     * @throws Exception 异常
     */
    int updateMchntApexInfoByPrimaryKey(MchntApexInfo mchntApexInfo) throws Exception;

    /**
     * 根据业务主键查询商户拓展属性表
     *
     * @param instId      多法人标识
     * @param mchntNo     商户号
     * @param propertyKey 属性KEY
     * @return 商户扩展属性信息
     * @throws Exception 异常
     */
    MchntApexInfo selectMchntApexInfoByPrimaryKey(String instId, String mchntNo, String propertyKey) throws Exception;

    /**
     * 根据非业务主键查询商户拓展属性表
     *
     * @param instId 多法人标识
     * @param id     非业务主键
     * @return 商户扩展属性信息
     * @throws Exception 异常
     */
    MchntApexInfo selectMchntApexInfoById(String instId, String id) throws Exception;

    /**
     * 根据商户号查询商户扩展属性信息
     *
     * @param instId  多法人标识
     * @param mchntNo 商户号
     * @return 商户扩展属性信息列表
     * @throws Exception 异常
     */
    List<MchntApexInfo> selectMchntApexInfoByMchntNo(String instId, String mchntNo) throws Exception;
}
